<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- 
    关于VueComponent:
        1.school组件本质是一个名为VueComponent的构造函数，且不是程序员定义的，是Vue.extend生成的。
        2.我们只需要写<school />或<school></school>，Vue解析时会帮我们创建school组件的实例对象，
          即vue帮我们执行的:new VueComponent(options)。
        3.特别注意:每次调用Vue.extend，返回的都是一个全新的VueComponent! ! !!
        4.关于this指向:
            (1).组件配置中:
                data函数、methods中的函数、watch中的函数、computed中的函数它们的this均是【VueComponent实例对象】。
            (2).new Vue(options)配置中:
                data函数、methods中的函数、watch中的函数、computed中的函数它们的this均是【Vue实例对象】。
        5.VueComponent的实例对象，以后简称vc（也可称之为:组件实例对象） -->

    <div id="app">

    </div>
    <script src="../../vue.js"></script>
    <script>

        //定义school组件
        const School = Vue.extend({
            template: `
            <div>
                <h2>学校名称：{{name}}</h2>
                <h2>学校地址：{{address}}</h2>
                <button @click="mu">点我提示学校名称</button>
            </div>`,
            name: "School",
            data() {
                return {
                    name: "广州白云学校",
                    address: "白云江高"
                };
            },
            methods:{
                mu(){
                    console.log(this.name)
                    console.log(this)
                }
            }
        });
        //console.log(School)

        const Hello = Vue.extend({
            template: `<h1>{{mess}}</h1>`,
            data() {
                return {
                    mess: "你好呀",
                };
            },
        })
        //创建vm
      var vm= new Vue({
            el: '#app',
            data() {
                return {

                };
            },
            //注册组件 局部
            components: {
                School, Hello
            },
            template: 
            `<div>
                <School></School>
                <Hello></Hello>
            </div>`
        });
       // console.log(vm.$children)
    </script>
</body>

</html>